package com.qf.controller;

import org.apache.tomcat.util.http.fileupload.IOUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.UUID;

@RestController
@RequestMapping("/up")
public class FileUploadController {

    @PostMapping ("/test1")
    public String upload(MultipartFile file01) throws IOException {
        System.out.println("接收到了上传的文件:"+file01);
        // 在服务器上找个目录，存放找个文件即可
//        String filedir = "D:\\pic2304\\";
        String filedir = "/root/upload/";
        String filename = UUID.randomUUID().toString();
        // 获取上传的文件的扩展名
        String originalFilename = file01.getOriginalFilename();
        String extname = originalFilename.substring(originalFilename.lastIndexOf("."));
        // 把文件存放的指定的位置
        file01.transferTo(new File(filedir+filename+extname));
        return "ok";
    }

    @RequestMapping("/test2")
    public void test2(String filename, HttpServletResponse response) throws Exception {

        String filedir = "D:\\pic2304\\";
        // 让浏览器以附件的形式下载文件
        response.addHeader("Content-Disposition","attachment;filename="+filename);
        // 文件下载的核心方法
        // 两个参数
        // 第一个参数：代表我们服务上的文件
        // 第二个参数：本次请求的响应体
        IOUtils.copy(new FileInputStream(filedir+filename),response.getOutputStream());

    }

}
